package com.dayuanit.dy17.mix.map;

import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
import java.util.Set;

public class TestMap {
    public static void main(String[] args) {
        //HashMap  Hashtable 区别？

        //散列表 哈希表  数组+链表的结构
        //使用场景：映射，查表
        Map<String, String> map = new HashMap<>();//容量0
        map.put("a", "tom");//第一次put的时候，才会初始化数组，且长度为16
        map.put("b", "jack");
        map.put("c", "steve");
        map.put(null, "xxx");

        //Hashtable key和value均不可为null 会抛异常
        Map hashTable = new Hashtable<>();
        hashTable.put("b", "bob");
        hashTable.put(null, "steve");

        //方案一：
        Set<String> set = map.keySet();
        for (String key : set) {
            System.out.println(key + "=" + map.get(key));
        }

        System.out.println("---------------");

        //方案二：
        Set<Map.Entry<String, String>> entries = map.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            System.out.println(entry.getKey() + "=" + entry.getValue());
        }

        System.out.println("-----------");

        map.forEach((k, v) -> System.out.println(k + "=" + v));
    }
}
